package v1

// VolumeMountSpec 定义了一个卷如何被挂载到容器内部。
type VolumeMountSpec struct {
	Name      string `json:"name" yaml:"name" validate:"required"`
	MountPath string `json:"mountPath" yaml:"mountPath" validate:"required"`
	ReadOnly  bool   `json:"readOnly,omitempty" yaml:"readOnly,omitempty"`
}

// VolumeSpec 定义了一个可供 Pod 中容器使用的卷。
type VolumeSpec struct {
	Name         string       `json:"name" yaml:"name" validate:"required"`
	VolumeSource VolumeSource `json:"volumeSource" yaml:"volumeSource" validate:"required"`
}

// VolumeSource 代表了一个卷的数据来源。我们从 HostPath 开始。
type VolumeSource struct {
	HostPath *HostPathVolumeSource `json:"hostPath,omitempty" yaml:"hostPath,omitempty"`
	// 未来可以在这里扩展其他卷类型，如：
	// EmptyDir *EmptyDirVolumeSource `json:"emptyDir,omitempty"`
	// ConfigMap *ConfigMapVolumeSource `json:"configMap,omitempty"`
}

type HostPathVolumeSource struct {
	Path string `json:"path" yaml:"path" validate:"required"`
	Type string `json:"type,omitempty" yaml:"type,omitempty"` // 例如："Directory" 或 "File"
}
